#include<stdio.h>
/*
 * 有一个10个元素的数组，要求对数组的前半部分按升序排序，后半部分按降序排序，最后输出数组的内容.
 */

int* sort(int* arr, int len, int asc){
	int *p1 = NULL;
	int *p2 = NULL;
	for(int i=0; i<len-1; i++){
		p1 = arr + i;	
		p2 = p1 +1;	
		for(int j=i+1; j<len; j++){
			if(asc){	
				if(*p1 > *p2){
					int temp = *p1;
					*p1 = *p2;
					*p2 = temp;
				}
			}else{
				if(*p1 < *p2){
					int temp = *p1;
					*p1 = *p2;
					*p2 = temp;
				}
			}
			p2++;
		}
	}
	return arr;
}

int main(){
	int arr[10] = {3,7,5,2,8,9,10,4,6,1};
    int *p = arr;
    sort(p,5,1);                    //前半段升序
	for(int i=0; i<10; i++){
		printf("%d\t", arr[i]);
	}

	p = arr + 5;                    	
	sort(p,5,0);                  //后半段降序
	printf("\n");
	for(int i=0; i<10; i++){
		printf("%d\t", arr[i]);
	}
	return 0;
}
